package com.wuuxiang.polestar.core;

import java.util.Set;

/**********************************************************
 * 项目名称：polestar
 * 类描述：   
 * 创建人：夏鸿鹏 
 * 创建时间：2017-11-24 17:06   
 * 修改备注：   
 *
 **********************************************************/

public abstract class ConfigProfile {

    public static enum KeyLoadingMode {
        /**
         * 加载所有属性
         */
        ALL,
        /**
         * 包含某些属性
         */
        INCLUDE,
        /**
         * 排除某些属性
         */
        EXCLUDE;
    }

    /**
     * 项目配置版本
     */
    protected final String version;

    private KeyLoadingMode keyLoadingMode = KeyLoadingMode.ALL;

    /**
     * 需要包含或排除的key,由{@code KeyLoadingMode}决定
     */
    private Set<String> keysSpecified;

    public ConfigProfile(String version) {
        super();
        this.version = version;
    }

    public final String getVersion() {
        return version;
    }

    public ConfigProfile.KeyLoadingMode getKeyLoadingMode() {
        return keyLoadingMode;
    }

    public void setKeyLoadingMode(ConfigProfile.KeyLoadingMode keyLoadingMode) {
        this.keyLoadingMode = keyLoadingMode;
    }

    public Set<String> getKeysSpecified() {
        return keysSpecified;
    }

    public void setKeysSpecified(Set<String> keysSpecified) {
        this.keysSpecified = keysSpecified;
    }

}
